public class test {
    public static void main(String[] args) {

        //运算符
        //1  算术运算符
          // + - * / %

/*
 byte a = 2;
        int b = 5;
        int c  = a+b;
        System.out.println(c);
*/

        //在此时进行算术操作时，a自动转换类型为int 类型
  /*  byte b1 = 5;
    int i = 5;
    byte b2 = b1+i;
        System.out.println(b2);
*/
      /*  int a = 5;
        double b =4.5;
        double c =a+b; //在计算时，系统自动将a的类型转换成double类型
        System.out.println(c);*/
  /*      int a =5;
        byte b =3;
        byte c = a+b;  //如果这样写代码会出现报错*/
//  /号
      /*  int a = 10/0;
        System.out.println(a);*/
        // 输出结果报异常，表示异常的原因是/0的缘故。
        //除去整数与整数之间进行相除
     /*   int a = 5;
        byte b = 2 ;
        System.out.println(a/b);*/
  /* int a = 5;
   double d = 2.0;
        System.out.println(a/d);
        System.out.println(d/a);
*/


//   %
     /*   int b = 8%0;
        System.out.println(b);*/
        //输出结果报异常，表示异常的原因是%0的缘故
//整数与整数之间的取模
     /*   int a = 5;
        int b = 2;
        int c = -2;
        System.out.println(a%b);
        System.out.println(a%c);
        int a2 = -5;
        System.out.println(a2%b);*/
// 整数与浮点数之间的取模,结果为浮点数
   /*     int a2 = 5;
        float f1 = 2.0f;
        System.out.println(a2%f1);
*/
        //浮点数与浮点数之间的取模,依然为浮点数
     /*   double d1 = -5.0;
        double d2 = 2.0;
        System.out.println(d1%d2);
*/
//    关系运算符
        //> , < , == , >= ,  <=,!=
        //关系运算符与操作数组成的是关系表达式
        //关系表达式的结果在java中只有两种true 与false
        //因此关系表达式可称为布尔表达式
       /* int a = 10;
        int b = 5;
        boolean  b1=      a>b ;
        System.out.println(b1);*/
//    逻辑运算符
        //&& 逻辑与  || 逻辑或   ！逻辑非
        //&&的逻辑是两边的布尔表达式的结果都为true，则此逻辑表达式的结果为true,否则结果为false。
      /*  int a = 10;
        int b =5;
        boolean b1 = a>b&&10>0;
        System.out.println(b1);*/
    // ||逻辑或
        //此运算符的逻辑是，两边的布尔表达式的结果均为false，此逻辑表达式的结果才为false，否则结果为true
         /*  int a = 10;
        int b =5;
        boolean b1 = a>b||10<0;
        System.out.println(b1);*/
  //短路
        //对于逻辑与 与 逻辑或 操作符的特性
        //提出了短路的思想
        //对于逻辑与操作符 ，如果左边的布尔表达式的结果为false，则此逻辑表达式的结果一定为false,所以右边的布尔表达式就不需要再
        //计算了,也不会再计算
        //这样是为了节省资源,减少不必要的执行
     /*   int a =10;
        int b =5;
    //    boolean b2 = 10/0>5;   //这样会报警告
       boolean b1 =  a<b&& 10/0>5;//这个算式不会，原因就在于后面的表达式根本就没有执行！
        System.out.println(b1);*/
        //对于逻辑或操作符
    /*    int a = 6;
        int b = 4;
       boolean b1 = a>b|| 10/0>5;
        System.out.println(b1);  //此时不会报警告，因为第一个布尔表达式值为true，所以第二个布尔表达式不会执行
        //也就不会报警告*/
   //  ! 逻辑非
           //此运算符的作用是用于改变布尔表达式的值，如果是false，则变为true,如果是true，结果是false
        /*System.out.println(!false);
        System.out.println(!true);
        System.out.println(! (10>0));*/
//   位操作符
        //& 按位与
        // |  按位或
        // ^  按位异或
        // ~  按位取反
        //<<
        //>>
        //>>>






























    }
}
